//#ifndef BIRD_H_
//#define BIRD_H_

#if 0
设计一个鸟（bird）类，设计纯虚方法fly(),分别有大雁类（WildGoose）、鹦鹉类（Parrot）,设计一个鸟笼类（birdCage）保存所有的鸟类对象（推荐使用vector），然后设计一个方法，让所有的鸟类飞翔。【4分：继承+虚函数重写2分，对象的保存1分，所有的动物的飞行1分】
#endif

#include <iostream>
#include <vector>
using namespace std;

class Bird{
public:
	virtual void fly() = 0;
};

class WildGoose : public Bird{
public:
	void fly() { cout << "fly with wildGoose..." << endl; }
};

class Parrot : public Bird{
public:
	void fly() { cout << "fly with parrot..." << endl; } 
};

class Birdcage{
	vector<Bird*> v;
public:
	Birdcage() {}
	void insert(Bird* b);
	void display();
};

void Birdcage::insert(Bird* b)
{
	v.push_back(b);
}

void Birdcage::display()
{
	for(vector<Bird*>::iterator it = v.begin();it != v.end(); ++it)
	{
		(*it)->fly();
	}
}

int main(void)
{
	Birdcage c;
	WildGoose w;
	Parrot p;
	c.insert(&w);
	c.insert(&p);
	c.display();

	return 0;
}

//#endif
